home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Utilities / AmiBroker / Rexx / EuroConverter / euro.converter.rexx < prev   
OS/2 REXX Batch file  |  1999-01-07  |  2KB  |  125 lines

  1. /* euro.converter.rexx */
  2.  
  3.   OPTIONS RESULTS
  4.  
  5.   SIGNAL ON IOERR
  6.   SIGNAL ON HALT
  7.  
  8.   /* main prg */
  9.   CALL prep
  10.   CALL cdb
  11.   CALL goodbye
  12.  
  13. /* === procs === */
  14.  
  15. PREP:
  16.  
  17.   copyright = "Copyright © 1999 Donald Dalley"
  18.     version = "1.00"
  19.     verdate = "January 7, 1999"
  20.  
  21.      locked = 0
  22.       count = 0
  23.          ok = 0
  24.  
  25.   'DATABASE STATUS'
  26.   /* changed */
  27.   IF (RESULT = 1) THEN DO
  28.     'REQUEST BODY="AmiBroker''s database has changed.||Is it OK to continue?" TITLE "   'copyright'" BUTTONS="OK|Quit"'
  29.     IF (RESULT = 0) THEN EXIT
  30.   END
  31.  
  32.   'REQUEST STRING BODY="Euro Converter||euro.converter.rexx v'version'|'verdate'||Enter current exchange rate,|as quoted in a newspaper.||.XXXX increases values|1.XXXX decreases values" TITLE "   'copyright'" BUTTONS="OK|Quit"'
  33.   rate = RESULT
  34.   IF (result = "") THEN EXIT
  35.  
  36.   'GUI LOCK'
  37.   locked = 1
  38.   'DEBUG OFF'
  39.  
  40. RETURN
  41.  
  42. CDB:
  43.  
  44.   'SELECT STOCK=@LAST'
  45.   'GETSELECTED STOCK'
  46.   last = RESULT
  47.   'SELECT STOCK=@FIRST'
  48.  
  49.   DO FOREVER
  50.     CALL cs
  51.     IF ticker = last THEN LEAVE
  52.     'SELECT STOCK=@NEXT'
  53.     count = count + 1
  54.   END
  55.  
  56. RETURN
  57.  
  58. CS:
  59.  
  60.   'ZOOM ALL'
  61.  
  62.   'GETSELECTED STOCK'
  63.   ticker = RESULT
  64.  
  65.   'GETSELECTED DATE'
  66.   date = RESULT
  67.   lastdate = RESULT
  68.  
  69.   'GETQUOTATION' ticker date 'CLOSE'
  70.   IF POS("-", RESULT) > 0 THEN DO
  71.     count = count + 1
  72.     RETURN
  73.   END
  74.  
  75.   CALL cd
  76.   ok = ok + 1
  77.  
  78. RETURN
  79.  
  80. CD:
  81.  
  82.   'SELECT DATE=@FIRST'
  83.   firstdate = RESULT
  84.  
  85.   DO UNTIL date = lastdate
  86.     'GETSELECTED DATE'
  87.     date = RESULT
  88.     'GETQUOTATION' ticker date 'CLOSE OPEN HIGH LOW VOLUME'
  89.     PARSE VAR RESULT close open high low volume .
  90.  
  91.      IF open > 0 THEN  open = open / rate
  92.      IF high > 0 THEN  high = high / rate
  93.      IF low  > 0 THEN   low = low / rate
  94.     IF close > 0 THEN close = close / rate
  95.  
  96.     CALL send2ab
  97.     'SELECT DATE=@NEXT'
  98.   END
  99.  
  100. RETURN
  101.  
  102. SEND2AB:
  103.  
  104.   'ADDQUOTATION STOCK='ticker' DATE='date' CLOSE='close' OPEN='open' HIGH='high' LOW='low' VOLUME='volume''
  105.  
  106. RETURN
  107.  
  108. IOERR:
  109. HALT:
  110.  
  111.   'REQUEST BODY="'ERRORTEXT(RC)' in line 'sigl',|on quote: 'ticker date volume close open high low'.||You probably requested a stop." TITLE="Trapped Error:"'
  112.   CALL goodbye
  113.  
  114. RETURN
  115.  
  116. GOODBYE:
  117.  
  118.   'REFRESH'
  119.   IF count > 0 THEN 'REQUEST BODY="'ok' of 'count' stocks were converted.||You may now Save the database." TITLE "   Goodbye"'
  120.     ELSE 'REQUEST BODY="You quit early." TITLE "   Goodbye"'
  121.  
  122.   IF locked = 1 THEN 'GUI UNLOCK'
  123.   'DEBUG ON'
  124.   EXIT
  125.